﻿$(function () {
    InitLeftMenu();
    tabClose();
    tabCloseEven();
})

//初始化左侧
function InitLeftMenu() {
    $("#nav").accordion({ animate: false });

    $.each(_menus.menus, function (i, n) {
        $('#nav').accordion('add', {
            title: "&nbsp;&nbsp;" + n.menuname,
            content: '<ul id="menu_tree_' + n.menuid + '"></ul>',
            iconCls: 'icon ' + n.icon
        });
        var treeData = getTreeData(n.menus);
        $('#menu_tree_' + n.menuid).tree({
            data: treeData,
            onClick: function (node) {
                if (node.attributes.url) {
                    addTab(node.id, node.text, node.attributes.url, node.iconCls);
                }
            }
        });
    });

    //选中第一个
    var panels = $('#nav').accordion('panels');
    var t = panels[0].panel('options').title;
    $('#nav').accordion('select', t);
}

function getTreeData(menus) {
    var treeData = [];
    $.each(menus, function (i, o) {
        var n = {
            id: o.menuid,
            text: o.menuname,
            iconCls: 'icon ' + o.icon,
            state: 'open',
            attributes: {
                url: o.url
            }
        };
        treeData[i] = n;
        if (o.menus && o.menus.length > 0) {
            n.children = getTreeData(o.menus);
            n.state = 'closed';
        }
    });

    return treeData;
}

//获取左侧导航的图标
function getIcon(menuid) {
    var icon = 'icon ';
    $.each(_menus.menus, function (i, n) {
        $.each(n.menus, function (j, o) {
            if (o.menuid == menuid) {
                icon += o.icon;
            }
        })
    })

    return icon;
}

function addTab(id, subtitle, url, icon) {
    var tab = getTabById(id);

    if (tab == null) {
        $('#tabs').tabs('add', {
            id: id,
            title: subtitle,
            content: createFrame(url),
            closable: true,
            icon: icon
        });
    } else {
        $('#tabs').tabs('select', $('#tabs').tabs('getTabIndex', tab));
        //$('#mm-tabupdate').click();   //刷新Tab内容
    }
    tabClose();
}

function getTabById(id) {
    var tabs = $('#tabs').tabs('tabs');

    for (var i = 0; i < tabs.length; i++) {
        var tmpTab = tabs[i];
        if (tmpTab[0].id == id) {
            return tmpTab;
        }
    }
}

function createFrame(url) {
    var s = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
    return s;
}

function tabClose() {
    /*双击关闭TAB选项卡*/
    /*
    $(".tabs-inner").dblclick(function () {
    var subtitle = $(this).children(".tabs-closable").text();
    $('#tabs').tabs('close', subtitle);
    })
    */
    /*为选项卡绑定右键*/
    $(".tabs-inner").bind('contextmenu', function (e) {
        $('#mm').menu('show', {
            left: e.pageX,
            top: e.pageY
        });

        var subtitle = $(this).children(".tabs-closable").text();

        $('#mm').data("currtab", subtitle);
        $('#tabs').tabs('select', subtitle);
        return false;
    });
}
//绑定右键菜单事件
function tabCloseEven() {
    //刷新
    $('#mm-tabupdate').click(function () {
        var currTab = $('#tabs').tabs('getSelected');
        var url = $(currTab.panel('options').content).attr('src');
        $('#tabs').tabs('update', {
            tab: currTab,
            options: {
                content: createFrame(url)
            }
        })
    })
    //关闭当前
    $('#mm-tabclose').click(function () {
        var currtab_title = $('#mm').data("currtab");
        $('#tabs').tabs('close', currtab_title);
    })
    //全部关闭
    $('#mm-tabcloseall').click(function () {
        $('.tabs-inner span').each(function (i, n) {
            var t = $(n).text();
            $('#tabs').tabs('close', t);
        });
    });
    //关闭除当前之外的TAB
    $('#mm-tabcloseother').click(function () {
        $('#mm-tabcloseright').click();
        $('#mm-tabcloseleft').click();
    });
    //关闭当前右侧的TAB
    $('#mm-tabcloseright').click(function () {
        var nextall = $('.tabs-selected').nextAll();
        if (nextall.length == 0) {
            //msgShow('系统提示','后边没有啦~~','error');
            //alert('后边没有啦~~');
            return false;
        }
        nextall.each(function (i, n) {
            var t = $('a:eq(0) span', $(n)).text();
            $('#tabs').tabs('close', t);
        });
        return false;
    });
    //关闭当前左侧的TAB
    $('#mm-tabcloseleft').click(function () {
        var prevall = $('.tabs-selected').prevAll();
        if (prevall.length == 0) {
            //alert('到头了，前边没有啦~~');
            return false;
        }
        prevall.each(function (i, n) {
            var t = $('a:eq(0) span', $(n)).text();
            $('#tabs').tabs('close', t);
        });
        return false;
    });

    //退出
    $("#mm-exit").click(function () {
        $('#mm').menu('hide');
    })
}

//弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning]
function msgShow(title, msgString, msgType) {
    $.messager.alert(title, msgString, msgType);
}
